//#include <stdio.h>
//#include <time.h>
//#include <stdlib.h>
//struct Stu{
//	int n1;
//	int n2;
//	int n3;
//	int n4;
//};
//int main()
//{
//	srand((unsigned)time(NULL));
//	int n,i=100;
//	struct Stu stu;
//	stu.n1=stu.n2=stu.n3=stu.n4=0;
//	while(i--)
//	{
//		n=4*rand()/RAND_MAX+0;
//		switch(n){
//		case 0:stu.n1++;
//			break;
//		case 1:stu.n2++;
//			break;
//		case 2:stu.n3++;
//			break;
//		case 3:stu.n4++;
//			break;
//		}
//	}
//	printf("zhangsan票数为:%d\nLisi票数为:%d\nZhouwu票数为:%d\nZhengliu票数为:%d\n",stu.n1,stu.n2,stu.n3,stu.n4);
//	return 0;
//}
//#include <stdio.h>
//struct Stu{
//	char name[10];
//	double score1;
//	double score2;
//	double score3;
//	double sum;
//	double ave;
//};
//void input(struct Stu *list)
//{
//	int i=0;
//	for(i=0;i<10;i++)
//	{
//		scanf("%s",list[i].name);
//		scanf("%lf",&list[i].score1);
//		scanf("%lf",&list[i].score2);
//		scanf("%lf",&list[i].score3);
//	    list[i].sum=list[i].score1+list[i].score2+list[i].score3;
//		list[i].ave=list[i].sum/3;
//	}
//}
//int main()
//{
//	struct Stu list[10],tmp;
//	input(list);
//	int i,j;
//	for(i=0;i<9;i++)
//	{
//		for(j=i+1;j<10;j++)
//		{
//			if(list[i].sum<list[j].sum)
//			{
//				tmp=list[i];
//				list[i]=list[j];
//				list[j]=tmp;
//			}
//		}
//	}
//	printf("排序过后的成绩表为：\n");
//	printf("学号  成绩1  成绩2  成绩3  总分  平均分\n");
//	for(i=0;i<10;i++)
//	{
//		printf("%s  ",list[i].name);
//		printf("%5.0lf  ",list[i].score1);
//		printf("%5.0lf  ",list[i].score2);
//		printf("%5.0lf  ",list[i].score3);
//		printf("%6.0lf  ",list[i].sum);
//		printf("%5.2lf\n",list[i].ave);
//	}
//	return 0;
//}

//#include <stdio.h>
//struct person{
//	char name[10];
//	int age;
//};
//int main()
//{
//	struct person s[10],*p;
//	p=s;
//	int i=0;
//	for(i=0;i<10;i++)
//	{
//		scanf("%s",s[i].name);
//		scanf("%d",&s[i].age);
//	}
//	for(i=0;i<10;i++)
//	{
//		if(p->age<s[i].age)
//			p=&s[i];
//	}
//	printf("最大年龄的人是:%s\n年龄为:%d\n",p->name,p->age);
//	return 0;
//}

#include <stdio.h>
#include <stdlib.h>
struct list{
	int data;
	struct list *next;
};
typedef struct list LinkNode;
typedef struct list *LinkList;
LinkList Creatlist(void)
{
	LinkList head,p,q;
	head=p=(LinkList)malloc(sizeof(LinkNode));
	p->next=0;
	while(1)
	{
		q=(LinkList)malloc(sizeof(LinkNode));
		q->next=NULL;
		scanf("%d",&q->data);
		if(q->data==-100)
		{
			p->next=NULL;
			break;
		}	
		else
		{
			p->next=q;
			p=q;
		}
	}
	return head;
}
void VisitList(LinkList head)
{
	int i=0;
	LinkList p=head;
	while(p->next!=NULL)
	{
		p=p->next;
		i++;
	}
	printf("总节点数为:%d",i);
}
void FreeList(LinkList head)
{
	LinkList q,p=head;
	while(p->next!=NULL)
	{
		q=p->next;
		free(p);
		p=q;
	}
}
int main()
{
	LinkList head;
	head=Creatlist();
	VisitList(head);
	FreeList(head);
	return 0;
}
